import router from './router'
import store from './store'
import { Toast } from 'vant'
import { getToken } from '@/utils/auth'
import $ from 'jquery'
import { isRelogin } from '@/utils/request'

router.beforeEach((to, from, next) => {
  let token = getToken()
  if (token) {
    // 判断当前用户是否已拉取完user_info信息
    if (store.getters.userInfo) {
      if (to.path.indexOf('material') != -1) {
        if (!$('body').hasClass('zank')) {
          $('body').addClass('zank')
        }
      } else {
        if ($('body').hasClass('zank')) {
          $('body').removeClass('zank')
        }
      }
      next()
    } else {
      isRelogin.show = true
      store
        .dispatch('GetUserInfo')
        .then(res => {
          isRelogin.show = false
          if (to.path.indexOf('material') != -1) {
            if (!$('body').hasClass('zank')) {
              $('body').addClass('zank')
            }
          } else {
            if ($('body').hasClass('zank')) {
              $('body').removeClass('zank')
            }
          }
          next()
        })
        .catch(error => {
          store.dispatch('LogOut').then(() => {
            Toast(error)
            next({ path: '/' })
          })
        })
    }
  } else {
    // 在免登录白名单，直接进入
    if (to.meta.anon) {
      next()
    } else if (to.query && to.query.sign) {
      // 飞书授权登录
      store
        .dispatch('Login', to.query.sign)
        .then(res => {
          isRelogin.show = true
          store
            .dispatch('GetUserInfo')
            .then(res => {
              isRelogin.show = false
              next()
            })
            .catch(error => {
              store.dispatch('LogOut').then(() => {
                Toast(error)
                next({ path: '/' })
              })
            })
        })
        .catch(error => {
          console.error(error)
        })
    } else {
      next(`/login?redirect=${to.fullPath}`) // 重定向到登录页
    }
  }
})

router.afterEach(() => {})
